﻿using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Web;
using System.Web.Mvc;

namespace MobilnyDostawca.ViewModels
{
    public class PrzesylkiCreateViewModel : IValidatableObject
    {
        /* nadawca */
        public string NadawcaImie { get; set; }
        public string NadawcaNazwisko { get; set; }
        public string NadawcaAdres { get; set; }
        public string NadawcaTelefon { get; set; }
        public int NadawcaRegion { get; set; }
        public int NadawcaSubregion { get; set; }
        public List<SelectListItem> NadawcaRegiony { get; set; }
        public List<SelectListItem> NadawcaSubregiony { get; set; }

        /* odbiorca */
        public string OdbiorcaImie { get; set; }
        public string OdbiorcaNazwisko { get; set; }
        public string OdbiorcaAdres { get; set; }
        public string OdbiorcaTelefon { get; set; }
        public int OdbiorcaRegion { get; set; }
        public int OdbiorcaSubregion { get; set; }
        public List<SelectListItem> OdbiorcaRegiony { get; set; }
        public List<SelectListItem> OdbiorcaSubregiony { get; set; }

        public bool IsValid { get; set; }

        public IEnumerable<ValidationResult> Validate(ValidationContext validationContext)
        {
            IsValid = true;

            if (this.NadawcaImie == null)
            {
                IsValid = false;
                yield return new ValidationResult("Imię nadawcy jest wymagane");
            }
            if (this.NadawcaNazwisko == null)
            {
                IsValid = false;
                yield return new ValidationResult("Nazwisko nadawcy jest wymagane");
            }
            if (this.NadawcaAdres == null)
            {
                IsValid = false;
                yield return new ValidationResult("Adres nadawcy jest wymagany");
            }
            if (this.NadawcaTelefon == null)
            {
                IsValid = false;
                yield return new ValidationResult("Telefon nadawcy jest wymagany");
            }
            if (this.NadawcaRegion == 0)
            {
                IsValid = false;
                yield return new ValidationResult("Region nadawcy jest wymagany");
            }
            if (this.NadawcaSubregion == 0)
            {
                IsValid = false;
                yield return new ValidationResult("Subregion nadawcy jest wymagany");
            }
            if (this.OdbiorcaImie == null)
            {
                IsValid = false;
                yield return new ValidationResult("Imię odbiorcy jest wymagane");
            }
            if (this.OdbiorcaNazwisko == null)
            {
                IsValid = false;
                yield return new ValidationResult("Nazwisko odbiorcy jest wymagane");
            }
            if (this.OdbiorcaAdres == null)
            {
                IsValid = false;
                yield return new ValidationResult("Adres odbiorcy jest wymagany");
            }
            if (this.OdbiorcaTelefon == null)
            {
                IsValid = false;
                yield return new ValidationResult("Telefon odbiorcy jest wymagany");
            }
            if (this.OdbiorcaRegion == 0)
            {
                IsValid = false;
                yield return new ValidationResult("Region odbiorcy jest wymagany");
            }
            if (this.OdbiorcaSubregion == 0)
            {
                IsValid = false;
                yield return new ValidationResult("Subregion odbiorcy jest wymagany");
            }
        }
    }
}